package com.hb.trade.server.project.notice.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hb.core.pojo.project.notice.dto.NoticeBidSectionOrgDTO;
import com.hb.core.pojo.project.notice.dto.NoticeDTO;
import com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO;
import com.hb.core.pojo.project.notice.entity.TenderInviteEnterprise;
import org.fzzn.core.model.msg.Message;

import java.util.List;

/**
 * <p>
 * 投标邀请信息 服务类
 * </p>
 *
 * @author zhaojk
 * @since 2021-08-30
 */
public interface TenderInviteEnterpriseService extends IService<TenderInviteEnterprise> {

    /**
     * 更新或者修改邀请投标企业信息
     *
     * @param noticeDTO
     * @author tian
     * @date 2022-2-19 15:38
     */
    void updateInviteEnterprise(NoticeDTO noticeDTO);


    /**
     * 根据邀请书id和标段id查询邀请企业信息
     *
     * @param noticeId  邀请书id
     * @return java.util.List<com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO>
     * @author tian
     * @date 2022-2-19 16:17
     */
    List<NoticeBidSectionOrgDTO> selectTenderInviteEnterpriseByNoticeIdAndSectionId(Long noticeId);


    /**
     * 投标人查询邀请书列表
     *
     * @param tenderInviteEnterpriseDTO
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO>
     * @author tian
     * @date 2022-2-19 16:34
     */
    Page<TenderInviteEnterpriseDTO> pageTenderInviteEnterpriseDTOByOrgId(TenderInviteEnterpriseDTO tenderInviteEnterpriseDTO);


    /**
     * 根据id查询邀请书详情
     *
     * @param inviteEnterpriseId
     * @return com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO
     * @author tian
     * @date 2022-2-19 17:12
     */
    TenderInviteEnterpriseDTO findTenderInviteEnterpriseInfoById(Long inviteEnterpriseId);

    /**
     * 投标人确定回执
     * @author tian
     * @date 2022-2-21 10:00
     * @param tenderInviteEnterpriseDTO
     * @return org.fzzn.core.model.msg.Message<java.lang.Boolean>
     */
    Message<Boolean> confirmationReceipt(TenderInviteEnterpriseDTO tenderInviteEnterpriseDTO);


    /**
     * 获取项目下各标段的邀请书信息
     * @author tian
     * @date 2022-2-21 13:06
     * @param tenderInviteEnterpriseDTO
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO>
     */
    Page<TenderInviteEnterpriseDTO> findInviteEnterpriseListByProjectId(TenderInviteEnterpriseDTO tenderInviteEnterpriseDTO);



    /**
     * 代理机构根据标段id查询当前标段下投标人邀请信息
     *
     * @param sectionId
     * @return com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO
     * @author tian
     * @date 2022-2-19 17:12
     */
    TenderInviteEnterpriseDTO findInviteEnterpriseInfoBySectionId(Long sectionId);


    /**
     * 代理机构查询标段下投标人的邀请状态
     * @author tian
     * @date 2022-2-21 13:06
     * @param tenderInviteEnterpriseDTO
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.hb.core.pojo.project.notice.dto.TenderInviteEnterpriseDTO>
     */
    Page<TenderInviteEnterpriseDTO> findInviteEnterprisePageBySectionId(TenderInviteEnterpriseDTO tenderInviteEnterpriseDTO);

    /**
     * 根据标段集合查询接受邀请的企业信息
     *
     * @author yuezheng
     * @param
     * @return org.fzzn.core.model.msg.Message
     * @date 2022/4/23 9:38 AM
     */
    List<TenderInviteEnterprise> findInviteEnterpriseByAcceptSectionList(List<Long> sectionList);
}
